//包装函数
module.exports = function (grunt) {
	
	// 任务配置，所有任务的配置信息
	grunt.initConfig({

		//获取package.json的信息
		pkg: grunt.file.readJSON('package.json'),

		//concat插件的配置信息
        concat: {
            options:{
                stripBanners:true, //合并时允许输出头部信息
                banner:'/*!<%= pkg.name %> - <%= pkg.version %>-'+'<%=grunt.template.today("yyyy-mm-dd") %> */\n'
            },
            cssConcat:{
                src:['src/css/main.css','src/css/reset.css'],
                dest:'build/concat/<%= pkg.name %> - <%= pkg.version %>.css' //dest 是目的地输出
            },
            jsConcat:{
                src:'src/js/*.js',
                dest:'build/concat/<%=pkg.name %> - <%= pkg.version %>.js'
            }
        },

          //压缩css
        cssmin:{
            options:{
                stripBanners:true, //合并时允许输出头部信息
                banner:'/*!<%= pkg.name %> - <%= pkg.version %>-'+'<%=grunt.template.today("yyyy-mm-dd") %> */'
            },
            build:{
                src:'build/concat/<%=pkg.name %> - <%=pkg.version %>.css',//压缩是要压缩合并了的
                dest:'build/min/<%= pkg.name %> - <%= pkg.version %>.min.css' //dest 是目的地输出
            }
        },

		//配置uglify插件信息,压缩JS
		uglify: {
			options: {
				stripBanner: true,
				banner: '/*!<%= pkg.name %> - <%= pkg.version %>-'+'<%=grunt.template.today("yyyy-mm-dd") %> */\n'
			},
			build: {
				src: 'build/concat/<%=pkg.name %> - <%=pkg.version %>.js',
				dest: 'build/min/<%= pkg.name %> - <%= pkg.version %>.min.js'
			}
		},

		//配置jshint插件信息
		jshint: {
			options: {
				jshintrc: '.jshintrc'
			},
			build: ['Gruntfile.js', 'src/js/*.js']
		},

		//配置csslint插件信息
		csslint: {
			options: {
				csslintrc: '.csslintrc'
			},
			build: 'src/css/*.css'
		},

		//watch自动化
        watch:{
            build:{
                files:['src/js/*.js','src/css/*.css'],
                tasks:['jshint','csslint'],
                options:{spawn:false}
            }
        }
	});

	//配置完以后，让grunt去加载插件
	grunt.loadNpmTasks('grunt-contrib-jshint');
	grunt.loadNpmTasks('grunt-contrib-csslint');
	grunt.loadNpmTasks('grunt-contrib-concat');
	grunt.loadNpmTasks('grunt-contrib-cssmin');
	grunt.loadNpmTasks('grunt-contrib-uglify');
	grunt.loadNpmTasks('grunt-contrib-watch');

	//告诉grunt当我们在终端输入grunt时需要做些什么,写入uglify插件执行
	grunt.registerTask('default', ['csslint','jshint','concat','cssmin','uglify','watch']);
};